﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DTO_MechSys;
using BLL_MechSys;

namespace FORMS_MechSys
{
    public partial class frmEstoqueDevolucao : Form
    {
        private static double valorDevolvido;
        public frmEstoqueDevolucao()
        {
            InitializeComponent();
            this.WindowState = FormWindowState.Maximized;
            SetColors();
        }

        private void SetColors()
        {
            this.BackColor = tlpPrincipal.BackColor = tlpMenuStrip.BackColor = new BLLCor().Buscar("Fundo").Cor;
            btnBuscarCliente.BackColor = btnBuscarVenda.BackColor = btnFinalizar.BackColor = tlp.BackColor =toolStripButtonSair.BackColor =
                tlpCrud.BackColor = tlpMenuStripCenter.BackColor = tlpMenuStripLeft.BackColor = tlpMenuStripRigth.BackColor =
                tlpVeiculo.BackColor = new BLLCor().Buscar("Principal").Cor;
            dgvDevolucao.BackgroundColor = dgvMensagens.BackgroundColor = new BLLCor().Buscar("DataGrid").Cor;
            label1.ForeColor = label21.ForeColor = label3.ForeColor = btnBuscarCliente.ForeColor = btnBuscarVenda.ForeColor =
                btnFinalizar.ForeColor = toolStripButtonSair.ForeColor = new BLLCor().Buscar("Letra").Cor;

        }


        private void LoadProduto()
        {
            if (dgvMensagens.CurrentCellAddress.Y >= 0)
            {
                DTOOrdemDetalheProduto dtoodp = new DTOOrdemDetalheProduto();
                new frmDevolver(dtoodp).ShowDialog();
            }
        }

        private void PopulaGrid()
        {
            dgvMensagens.DataSource = null;
            dgvMensagens.DataSource = new BLLProduto().BuscaProdutosOrdemDevolucao(BLLUtilitarios.ordemDevolucaoId);
            int cont = dgvMensagens.RowCount;
            if (dgvMensagens.ColumnCount > 0)
            {
                dgvMensagens.Columns[0].Visible = false;
                dgvMensagens.Columns[6].Visible = false;
            }
            else
                dgvMensagens.DataSource = null;
        }
        private void PopulaGridDevolucao()
        {
            dgvDevolucao.DataSource = null;
            dgvDevolucao.DataSource = new BLLDevolucao().Listar();
            dgvDevolucao.Columns[3].Visible = false;
            dgvDevolucao.Columns[4].Visible = false;
            dgvDevolucao.Columns[6].Visible = false;
        }

        private void btnBuscarCliente_Click(object sender, EventArgs e)
        {
            new frmClienteSelecionar().ShowDialog();
            txtCliente.Text = BLLUtilitarios.clienteNome;
        }

        private void toolStripButtonSair_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnBuscarVenda_Click(object sender, EventArgs e)
        {
            new frmSelecionarGenerico("Venda").ShowDialog();
            txtCompra.Text = BLLUtilitarios.ordemDevolucaoDescricao;
            PopulaGrid();
        }

        private void dgvMensagens_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (dgvMensagens.CurrentCellAddress.Y >= 0)
            {
                DTOOrdemDetalheProduto dtoOdp = new DTOOrdemDetalheProduto();
                dtoOdp.OrdemID = Int32.Parse(dgvMensagens.Rows[dgvMensagens.CurrentCellAddress.Y].Cells[0].Value.ToString());
                dtoOdp.ProdutoID = Int32.Parse(dgvMensagens.Rows[dgvMensagens.CurrentCellAddress.Y].Cells["ID"].Value.ToString());
                dtoOdp.PrecoUnitario = Double.Parse(dgvMensagens.Rows[dgvMensagens.CurrentCellAddress.Y].Cells["Valor"].Value.ToString());
                dtoOdp.Quantidade = Int32.Parse(dgvMensagens.Rows[dgvMensagens.CurrentCellAddress.Y].Cells["Quantidade"].Value.ToString());
                dtoOdp.Desconto = Double.Parse(dgvMensagens.Rows[dgvMensagens.CurrentCellAddress.Y].Cells["Desconto"].Value.ToString());
                new frmDevolver(dtoOdp).ShowDialog();
                PopulaGridDevolucao();
                PopulaGrid();
            }
        }

        private void btnFinalizar_Click(object sender, EventArgs e)
        {
            valorDevolvido =0;
            for (int i = 0; i < dgvDevolucao.RowCount; i++)
            {
                valorDevolvido += double.Parse(dgvDevolucao.Rows[i].Cells["Valor"].Value.ToString()) * Int32.Parse(dgvDevolucao.Rows[i].Cells["Quantidade"].Value.ToString()); 
            }
            if (valorDevolvido > 0)
            {
                new frmMessageBox().Show(string.Format("O cliente realizou devoluções no valor de R${0:0.00}.\nOs produtos foram recolocados em estoque.", valorDevolvido), "Devoluções Salvas", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();
            }
        }
    }
}
